export class ToolUtils {
    private constructor() {};

    /**
     * 获取浏览器参数
     * @returns {any}
     */
    static getUrlParam():any{
        let params = {};
        if(window.location == null){
            return params;
        }
        let name,value;
        let str=window.location.href; //取得整个地址栏
        let num=str.indexOf("?")
        str=str.substr(num+1); //取得所有参数   stringlet.substr(start [, length ]
        let arr=str.split("&"); //各个参数放到数组里
        for(let i=0;i < arr.length;i++){
            num=arr[i].indexOf("=");
            if(num>0){
                name=arr[i].substring(0,num);
                value=arr[i].substr(num+1);
                params[name]=value;
            }
        }
        return params;
    }


    /**
     * 加载url图片
     * @param url
     * @param {cc.Sprite} sprite
     */
    static loadNetImage(url, sprite:cc.Sprite) {
        if(sprite == null) {
            cc.warn("loadImage sp fail");
            return;
        }

        if(url == null || url == ""){
            cc.warn("loadImage url fail")
            return;
        }

        if(url.indexOf(".png") == -1 && url.indexOf(".jpg") == -1){
            url += "?a.jpg"
        }

        let width = sprite.node.width
        let height = sprite.node.height
        cc.loader.load(url,function (err,tex) {
            sprite.spriteFrame = new cc.SpriteFrame(tex);
            sprite.node.width = width;
            sprite.node.height = height;
        });
    }

    /**
     * 名称超框后用..表示
     * @param {string} name 名称
     * @param {cc.Label} label 节点
     * @param {number} max_length 最大长度
     */
    static nameToShort(name:string,label:cc.Label,max_length:number){
        label.string = name;
        if(label.node.width<=max_length){
            return;
        }
        for(let i=name.length;i>0;i--){
            let tmpName = name.substring(0,i);
            label.string = tmpName + "..";
            if(label.node.width<=max_length){
                return;
            }
        }
        return;
    }

    /**
     * 数字超框后用..表示
     * @param {number} num
     * @param {cc.Label} label
     */
    static numToShort(num:number,label:cc.Label,max_length:number){
        label.string = num + "";
        if(label.node.width<=max_length){
            return;
        }

        for(let i=3;i>=0;i--){
            label.string = Math.floor(num/10000 * Math.pow(10,i)) / Math.pow(10,i) + "万";
            if(label.node.width<=max_length){
                return;
            }
        }
        return;
    }
}